Event Driven Architecture (EDA)
イベント駆動アーキテクチャ_
システム内で通信する方法としてイベントを使用するもの
名前からして、Eventを使ってさえいればひとまずEDAということになるはずmrsekut.icon
https://gyazo.com/92bf59b76972c953a305031cf722c206 https://github.com/karanpratapsingh/system-design?tab=readme-ov-file#components-1
Event Producer
Eventを発行するやつ
Event Router
全ての(?)Eventを割り振るやつ
Event Consumer
特定のEventを処理するやつ
/mrsekut-book-4873119820/208 (14章 イベント駆動アーキテクチャ)
https://gyazo.com/bec4a01a968369600f4833293b211f6e
リクエストオーケストレーター
飛んできたeventをリクエストプロセッサーに導く
リクエストプロセッサー
DBの情報を取得・更新してリクエストを処理する
ブローカー
/mrsekut-book-4873119820/209 (14.2 ブローカー)
イベント処理に対して高度な応答性と動的な制御が必要な場合に使用される
mediatorを必要としない、単純なevent処理フロー
4つの要素
開始event
イベントブローカー
event processor
処理event
https://gyazo.com/0747b321370521b6685830b450a71534
複数のevent processorが流れるようにeventを処理していく
メディエーター
イベント処理のワークフロー制御が必要な場合に使用される
/mrsekut-book-4873119820/214 (14.3 メディエーター)
https://gyazo.com/7b7458bcc9309450e05063285aa3c7b7
具体的なアーキテクチャ
Saga
Pub/Sub
Event Sourcing
CQRS
『System Design』 ref
https://speakerdeck.com/nrslib/guide-to-implementing-event-driven-architecture-and-common-pitfalls